# -*- coding: utf-8 -*-

def eval(cmd, cmdps):
    pos = cmd.index(u":")
    tst = cmd[pos+1:]       # testiarvo
    cmd = cmd[:pos]
    if cmd == "#switch":
        found = False       # käytetään kun "pudottaudutaan" seuraavaan kohtaan
        c, v = None, None
        for p in cmdps:
            pos = p.find("=")
            if pos != -1:
                c = p[:pos]
                v = p[pos+1:]
            else:
                c = p
                v = None
            if c == tst or found == True:
                if v != None:
                    return v
                found = True
        return ""

    elif cmd == "#if":
        if len(cmdps) > 2:
            print "Varoitus: liian monta parametria #if:ille"
        elif len(cmdps) == 0:
            print "Varoitus: liian vähän parametreja #if:ille"
         # :-merkin jälkeinen parametri on evaloitunut muuksi kuin tyhjäksi
        if tst != "":
            return cmdps[0]
        elif len(cmdps) > 1:
            return cmdps[1]
        return ""

    elif cmd == "#ifexist":
        if len(cmdps) > 2:
            print "Varoitus: liian monta parametria #ifexist:ille"
        elif len(cmdps) == 0:
            print "Varoitus: liian vähän parametreja #ifexist:ille"
        
        tst = True # sivu on olemassa
        if tst == True:
            return cmdps[0]
        elif len(cmdps) > 1:
            return cmdps[1]
        return ""

    # muuttaa merkkijonon lopun
    # käyttö: {{#loppu:merkkijono|ma|ja|mä|jä}}
    elif cmd == "#loppu":
        for i in xrange(0, len(cmdps), 2):
#            print "i:{}".format(i)
            llen = len(cmdps[i])
            tlen = len(tst)
#            print u"tst: {}".format(tst)
#            print u"tlen: {}, llen: {}".format(tlen, llen)
#            print u"ero: {}".format(tst[tlen-llen:])
            if tst[tlen-llen:] == cmdps[i]:
                return tst[0:tlen-llen] + cmdps[i+1]
        return "[EIEIEIEIEIEI]" #tst

    elif cmd == "#chomp":
        # Poistaa tetyt merkit lopusta.
        for i in xrange(0, len(cmdps), 2):
#            print "i:{}".format(i)
            llen = len(cmdps[i])
            tlen = len(tst)
            if tst[tlen-llen:] == cmdps[i]:
                return tst[0:tlen-llen]
        return tst

    # Palauttaa viimeisen merkin.
    # käyttö: {{#vika:merkkijono}}
    elif cmd == "#vika":
        if len(tst) > 0:
            return tst[-1]
        return ""


    raise NotImplementedError(cmd)

